package model

import (
	"starry_sky/internal/core"
)

type Permission struct {
	BaseModelWithoutDelete
	Title      string              `json:"title"`                      //菜单显示名称
	Name       string              `json:"name"`                       //权限名称
	Permission string              `json:"permission"`                 //权限编码(只有按钮类型才有)
	Type       core.PermissionType `json:"type" gorm:"type:smallint"`  //权限类型
	ParentId   string              `json:"parentId"`                   //父权限id
	Sort       uint                `json:"sort" gorm:"type:smallint"`  //顺序
	Icon       string              `json:"icon"`                       //图片
	Path       string              `json:"path"`                       //path
	Status     bool                `json:"status" gorm:"default:true"` //状态
	KeepAlive  bool                `json:"keepAlive"`                  //是否缓存
	Visible    bool                `json:"visible"`                    //是否显示
	Children   []*Permission       `json:"children" gorm:"-"`          //子权限
}

func (u *Permission) TableName() string {
	return "sys_permission"
}
